.\" -*- nroff -*-
.de IQ
.  br
.  ns
.  IP "\\$1"
..
.TH ovs\-vswitchd 8 "June 2009" "Open vSwitch" "Open vSwitch Manual"
.\" This program's name:
.ds PN ovs\-vswitchd
.\" SSL peer program's name:
.ds SN ovs\-controller
.
.SH NAME
ovs\-vswitchd \- Open vSwitch daemon
.
.SH SYNOPSIS
.B ovs\-vswitchd
\fIdatabase\fR
.
.SH DESCRIPTION
A daemon that manages and controls any number of Open vSwitch switches 
on the local machine.
.PP
The mandatory \fIdatabase\fR argument normally takes the form
\fBunix:\fIfile\fR, where \fIfile\fR is the name of a Unix domain
socket on which \fBovsdb\-server\fR is listening.  However, all of the
following forms are accepted:
.so ovsdb/remote-active.man
.so ovsdb/remote-passive.man
.PP
\fBovs\-vswitchd\fR retrieves its configuration from \fIdatabase\fR at
startup.  It sets up Open vSwitch datapaths and then operates
switching across each bridge described in its configuration files.  As
the database changes, \fBovs\-vswitchd\fR automatically updates its
configuration to match.
.PP
Upon receipt of a SIGHUP signal, \fBovs\-vswitchd\fR reopens its log
file, if one was specified on the command line.
.PP
\fBovs\-vswitchd\fR switches may be configured with any of the following 
features:
.
.IP \(bu
L2 switching with MAC learning.
.
.IP \(bu
NIC bonding with automatic fail-over and source MAC-based TX load
balancing ("SLB").
.
.IP \(bu
802.1Q VLAN support.
.
.IP \(bu
Port mirroring, with optional VLAN tagging.
.
.IP \(bu
NetFlow v5 flow logging.
.
.IP \(bu
sFlow(R) monitoring.
.
.IP \(bu
Connectivity to an external OpenFlow controller, such as NOX.
.
.PP
Only a single instance of \fBovs\-vswitchd\fR is intended to run at a time.
A single \fBovs\-vswitchd\fR can manage any number of switch instances, up
to the maximum number of supported Open vSwitch datapaths.
.PP
\fBovs\-vswitchd\fR does all the necessary management of Open vSwitch datapaths
itself.  Thus, external tools, such \fBovs\-dpctl\fR(8), are not needed for
managing datapaths in conjunction with \fBovs\-vswitchd\fR, and their use
to modify datapaths when \fBovs\-vswitchd\fR is running can interfere with
its operation.  (\fBovs\-dpctl\fR may still be useful for diagnostics.)
.PP
An Open vSwitch datapath kernel module must be loaded for \fBovs\-vswitchd\fR
to be useful.  Please refer to the \fBINSTALL.Linux\fR file included in the
Open vSwitch distribution for instructions on how to build and load
the Open vSwitch kernel module.
.PP
.SH OPTIONS
.IP "\fB\-\-mlockall\fR"
Causes \fBovs\-vswitchd\fR to call the \fBmlockall()\fR function, to
attempt to lock all of its process memory into physical RAM,
preventing the kernel from paging any of its memory to disk.  This
helps to avoid networking interruptions due to system memory pressure.
.IP
Some systems do not support \fBmlockall()\fR at all, and other systems
only allow privileged users, such as the superuser, to use it.
\fBovs\-vswitchd\fR emits a log message if \fBmlockall()\fR is
unavailable or unsuccessful.
.
.IP "\fB\-\-fake\-proc\-net\fR"
Causes \fBovs\-vswitchd\fR to simulate some files in \fB/proc/net/vlan\fR
and \fB/proc/net/bonding\fR that some legacy software expects to
exist.  This option should only be used if such legacy software is
actually in use.  It requires the \fBbrcompat_mod.ko\fR kernel module
to be loaded.
.IP
On non-Linux hosts, this option is accepted but has no effect.
.
.so lib/daemon.man
.SS "Public Key Infrastructure Options"
.so lib/ssl.man
.so lib/ssl-bootstrap.man
.so lib/vlog.man
.so lib/common.man
.so lib/leak-checker.man
.
.SH "RUNTIME MANAGEMENT COMMANDS"
\fBovs\-appctl\fR(8) can send commands to a running
\fBovs\-vswitchd\fR process.  The currently supported commands are
described below.  The command descriptions assume an understanding of
how to configure Open vSwitch.
.SS "GENERAL COMMANDS"
.IP "\fBexit\fR"
Causes \fBovs\-vswitchd\fR to gracefully terminate.
.SS "BRIDGE COMMANDS"
These commands manage bridges.
.IP "\fBfdb/show\fR \fIbridge\fR"
Lists each MAC address/VLAN pair learned by the specified \fIbridge\fR,
along with the port on which it was learned and the age of the entry,
in seconds.
.IP "\fBbridge/reconnect\fR [\fIbridge\fR]"
Makes \fIbridge\fR drop all of its OpenFlow controller connections and
reconnect.  If \fIbridge\fR is not specified, then all bridges drop
their controller connections and reconnect.
.IP
This command might be useful for debugging OpenFlow controller issues.
.
.IP "\fBbridge/dump\-flows\fR \fIbridge\fR"
Lists all flows in \fIbridge\fR, including those normally hidden to
commands such as \fBovs\-ofctl dump\-flows\fR.  Flows set up by mechanisms
such as in-band control and fail-open are hidden from the controller
since it is not allowed to modify or override them.
.SS "BOND COMMANDS"
These commands manage bonded ports on an Open vSwitch's bridges.  To
understand some of these commands, it is important to understand a
detail of the bonding implementation called ``MAC hashing.''  Instead
of directly assigning Ethernet source addresses to slaves, the bonding
implementation computes a function that maps an 48-bit Ethernet source
addresses into an 8-bit value (a ``MAC hash'' value).  All of the
Ethernet addresses that map to a single 8-bit value are then assigned
to a single slave.
.IP "\fBbond/list\fR"
Lists all of the bonds, and their slaves, on each bridge.
.
.IP "\fBbond/show\fR \fIport\fR"
Lists all of the bond-specific information about the given bonded
\fIport\fR: updelay, downdelay, time until the next rebalance.  Also
lists information about each slave: whether it is enabled or disabled,
the time to completion of an updelay or downdelay if one is in
progress, whether it is the active slave, the MAC hashes assigned to
the slave, and the MAC learning table entries that hash to each MAC.
.IP "\fBbond/migrate\fR \fIport\fR \fIhash\fR \fIslave\fR"
Assigns a given MAC hash to a new slave.  \fIport\fR specifies the
bond port, \fIhash\fR either the MAC hash to be migrated (as a decimal
number between 0 and 255) or an Ethernet address to be hashed, and
\fIslave\fR the new slave to be assigned.
.IP
The reassignment is not permanent: rebalancing or fail-over will
cause the MAC hash to be shifted to a new slave in the usual
manner.
.IP
A MAC hash cannot be migrated to a disabled slave.
.IP "\fBbond/set\-active\-slave\fR \fIport\fR \fIslave\fR"
Sets \fIslave\fR as the active slave on \fIport\fR.  \fIslave\fR must
currently be enabled.
.IP
The setting is not permanent: a new active slave will be selected
if \fIslave\fR becomes disabled.
.IP "\fBbond/enable\-slave\fR \fIport\fR \fIslave\fR"
.IQ "\fBbond/disable\-slave\fR \fIport\fR \fIslave\fR"
Enables (or disables) \fIslave\fR on the given bond \fIport\fR, skipping any
updelay (or downdelay).
.IP
This setting is not permanent: it persists only until the carrier
status of \fIslave\fR changes.
.IP "\fBbond/hash\fR \fImac\fR"
Returns the hash value which would be used for \fImac\fR.
.
.so lib/vlog-unixctl.man
.SH "SEE ALSO"
.BR ovs\-appctl (8),
.BR ovs\-brcompatd (8),
.BR ovsdb\-server (1),
\fBINSTALL.Linux\fR in the Open vSwitch distribution.
